﻿using System;
namespace Perovich.GameObjects.Interfaces
{
    /// <summary>
    /// Exposes the requirements for an <see cref="Perovich.GameObjects.Components.ThreeDimensional.AttachableCamera"/> to attach to an object.
    /// </summary>
    public interface ICanBeAttachedTo
    {
        /// <summary>
        /// Gets the position of this <see cref="ICanBeAttachedTo"/>.
        /// </summary>
        Microsoft.Xna.Framework.Vector3 Position { get; }
        /// <summary>
        /// Triggered when the <see cref="Position"/> property changes.
        /// </summary>
        event EventHandler PositionChanged;
        /// <summary>
        /// Gets the rotation about the x-axis of this <see cref="ICanBeAttachedTo"/>.
        /// </summary>
        float RotationX { get; }
        /// <summary>
        /// Gets the rotation about the y-axis of this <see cref="ICanBeAttachedTo"/>.
        /// </summary>
        float RotationY { get; }
    }
}
